﻿
using BCCommon;
using BCCommon.Enums;
using BCCommon.TMS.Transport;
using BCData.TMS.TransportOrder;
using BCDto.TMS.TransportOrder;
using BCEntity.TMS.TransportOrder;
using BCService.TMS.Order.Order;
using BCService.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BCService.TMS.TransportOrder
{
	/// <summary>
	/// 运输订单
	/// </summary>
	public interface ITransportOrderService
	{
		/// <summary>
		/// 获取订单服务
		/// </summary>
		/// <param name="transportBusinessType">运输业务类型</param>
		/// <param name="vehicleSuiteBusinessType">套餐业务类型</param>
		/// <returns></returns>
		IOrderService GetOrderService(TransportBusinessType transportBusinessType, VehicleSuiteBusinessType? vehicleSuiteBusinessType);

		#region  成员方法
		/// <summary>
		/// 是否存在此记录
		/// </summary>
		/// <param name="transportOrderId">运输订单Id</param>
		bool Exists(long transportOrderId);
		/// <summary>
		/// 添加运输订单
		/// </summary>
		/// <param name="requestDto">运输订单信息</param>
		TransportOrderDto Add(TransportOrderRequestDto requestDto);
		/// <summary>
		/// 更新运输订单
		/// </summary>
		/// <param name="putDto">运输订单信息</param>
		TransportOrderDto Update(TransportOrderPutDto putDto);
		/// <summary>
		/// 删除运输订单
		/// </summary>
		/// <param name="transportOrderId">运输订单Id</param>
		bool Delete(long transportOrderId);
		/// <summary>
		/// 获取运输订单
		/// </summary>
		/// <param name="transportOrderId">运输订单Id</param>
		TransportOrderDto Get(long transportOrderId);
		/// <summary>
		/// 获取运输订单列表
		/// </summary>
		IEnumerable<TransportOrderDto> GetList();
		/// <summary>
		/// 获取运输订单分页列表
		/// </summary>
		/// <param name="start">开始时间</param>
		/// <param name="end">结束时间</param>
		/// <param name="sortName">排序字段</param>
		/// <param name="ascending">升序</param>
		/// <param name="pageIndex">当前页码</param>
		/// <param name="pageSize">运输订单每页数据条数</param>
		PageableList<TransportOrderDto> Query(DateTime? start, DateTime? end, string sortName, bool? ascending, int pageIndex, int pageSize);
        #endregion  成员方法
		
    }
}